package com.周阳.中介者模式.智能家居案例;

/**
 * 具体同事类：闹钟
 */
public class Alarm extends Colleague{

    /**
     * 构造器
     */
    public Alarm(Mediator mediator, String name) {
        //调用父类构造方法，给mediator和name赋值
        super(mediator, name);
        //在创建 Alarm 同事对象时，将自己放入到 ConcreteMediator 对象中[集合]
        mediator.Register(name, this);
    }

    //闹钟响起行为
    public void SendAlarm(int stateChange) {
            SendMessage(stateChange);
    }

    /**
     * 重写发送消息的方法，给中介发送消息
     * @param stateChange
     */
    @Override
    public void SendMessage(int stateChange) {
        //先获取中介对象，然后调用中介的GetMessage方法，就表示同事类给中介发出去消息了
        this.GetMediator().GetMessage(stateChange, this.name);
    }
}
